Kopirovani otevreneho DBF souboru

Otázka od: David Klodner

8. 10. 2004 11:18

Zdravim,

potrebuju zkopirovat DBF soubor, ktery je zrovna jinym programem otevren
s vyhradnim pristupem.
Funkce CopyFile soubor otevira, takze dojde k chybe a zkopirovani
neprobehne.
Kdyz ho ale kopiruju napr. pres Total Commandera, tak to jde.

David Klodner
D5


Odpovedá: netusil.roman@vspardubice.cz

14. 11. 2003 10:22

Ahoj,
uspesne pouzivam CopyFileTo(SrcName,DstName) z IdGlobal.

Roman

-----Original Message-----
From: Zapletal Martin [mailto:zapletal@inoma.cz]
Sent: Friday, November 14, 2003 10:00 AM
To: delphi-l@clexpert.cz
Subject: kopirovani otevreneho dbf souboru

Potreboval bych z nasdileneho adresare v siti (prava pouze pro cteni)
zkopirovat *.dbf soubor ktery je ale permanentne otevren jinou aplikaci v
exclusive modu. Nevite jak to udelat?

Zapletal Martin







----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Zapletal Martin

14. 11. 2003 12:14

Nefunguje. porad hlasi chybu otevreni souboru .Ma nekdo jiny napad?

Martin

> uspesne pouzivam CopyFileTo(SrcName,DstName) z IdGlobal.
>
> Roman





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Petr Vones

8. 10. 2004 12:35

From: "David Klodner" <d.klodner@sofico.cz>
> potrebuju zkopirovat DBF soubor, ktery je zrovna jinym programem otevren
> s vyhradnim pristupem.
> Funkce CopyFile soubor otevira, takze dojde k chybe a zkopirovani
> neprobehne.

Pokud by si chtel kopirovat soubor ktery je otevren tak prece nemuzes zajistit
ze je prave v konzistentnim stavu.

> Kdyz ho ale kopiruju napr. pres Total Commandera, tak to jde.

Podle toho asi bude vypadat jeho "obsah".

Petr Vones


Odpovedá: David Klodner

9. 10. 2004 10:09

I tak by se me to hodilo. Ten soubor je otevren ucetnim programem,
zapise se do nej nejaka zmena a pak to zustava otevrene
treba i nekolik hodin.
Nevite teda nekdo, jak zkopirovat otevreny soubor?

David Klodner

>> potrebuju zkopirovat DBF soubor, ktery je zrovna jinym programem
>> otevren s vyhradnim pristupem. Funkce CopyFile soubor otevira, takze
>> dojde k chybe a zkopirovani neprobehne.

>Pokud by si chtel kopirovat soubor ktery je otevren tak prece nemuzes
zajistit ze je prave v konzistentnim stavu.

>> Kdyz ho ale kopiruju napr. pres Total Commandera, tak to jde.

> Podle toho asi bude vypadat jeho "obsah".

> Petr Vones



Odpovedá: Slavomir Skopalik

9. 10. 2004 10:21

Jenze windows ukladaji data az v okamziku uzavreni souboru.
Viz. problemy FB 1.0.x s forced writes.
Takze pokud opravdu chces ty data k necemu pouzit, tak to nedelej.

 Slavek

PS: Podivej se na API funkci CreateFile (MS SDK).

> I tak by se me to hodilo. Ten soubor je otevren ucetnim
> programem, zapise se do nej nejaka zmena a pak to zustava
> otevrene treba i nekolik hodin. Nevite teda nekdo, jak
> zkopirovat otevreny soubor?
>
> David Klodner
>


Odpovedá: Pavel Malinsky

9. 10. 2004 10:29

> -----Original Message-----
> From: delphi-l-owner@clexpert.cz
> [mailto:delphi-l-owner@clexpert.cz] On Behalf Of David Klodner
>

Ahoj,

> I tak by se me to hodilo. Ten soubor je otevren ucetnim programem,
> zapise se do nej nejaka zmena a pak to zustava otevrene
> treba i nekolik hodin.
> Nevite teda nekdo, jak zkopirovat otevreny soubor?

No, kdyz pomineme to, ja hodne ten soubor bude konzistentni a zda vubec
bude pripadne pouzitelny tak zkus pouzit treba TFileStream a pri jeho
creatu nastavit patricny mod(fmShareDenyNone) treba to pujde,
kdyz ne, tak ten prg. co s nim pracuje ho ma exclusivne...

          S pozdravem a dikem
=====================================
> Pavel Malinsky; malinsky@pmcom.cz <
=====================================
> GSM: 602 652 203 | ICQ: 322015967 <
=====================================



Odpovedá: Jan Sebelik

9. 10. 2004 10:49

> I tak by se me to hodilo. Ten soubor je otevren ucetnim programem,
> zapise se do nej nejaka zmena a pak to zustava otevrene
> treba i nekolik hodin.
> Nevite teda nekdo, jak zkopirovat otevreny soubor?

viz paralelni zpravy - to nejde...

Budes muset napsat nejaky export, ktery data dostane ven.
Nevadi ze DBF je otevreny - k datum muze pristupovat vice uzivatelu.
Pak vytvoris "vedlejsi" soubor, ktery po dokonceni bude uz zavreny.

Zamysli se nad logikou aplikace.

Opravdu musis kopirovat cely soubor? Nestaci jenom nejake zmeny?

Kdo ten soubor potrebuje?
Nestacilo by napsat nejakou sluzbu, ktera by data zpristupnila zvnejsku primo?

Musis to exportovat do DBF?
Nebylo by lepsi neco "univerzalnejsiho" (XML a pod).

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes.cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347 735)
====================================


Odpovedá: delphin@post.cz

9. 10. 2004 12:21

> Jenze windows ukladaji data az v okamziku uzavreni souboru.

Pokud neni nastaven FILE_ATTRIBUTE_TEMPORARY, coz v pripade souboru DBF asi
nehrozi, jsou data samozrejme ukladany prubezne a ne az pri uzavreni
souboru.


Odpovedá: Lauko Stefan

9. 10. 2004 16:13

Ahoj,
ked to ide TotalCommandrom tak vyskusaj toto:

var
 SourceFile, DestFile:TFileStream;
begin
 SourceFile:=TFileStream.Create('source.dbf',fmShareDenyNone);
 DestFile:= TFileStream.Create('dest.dbf',fmCreate);
 DestFile.CopyFrom(SourceFile,SourceFile.Size);
 SourceFile.Free;
 DestFile.Free;
end;

Ale skutocne tam moze byt ten obsah neuplny.

Lauko.

----- Original Message -----
From: "David Klodner" <d.klodner@sofico.cz>
> potrebuju zkopirovat DBF soubor, ktery je zrovna jinym programem otevren
> s vyhradnim pristupem.
> Funkce CopyFile soubor otevira, takze dojde k chybe a zkopirovani
> neprobehne.
> Kdyz ho ale kopiruju napr. pres Total Commandera, tak to jde.


Odpovedá: David Klodner

9. 10. 2004 18:05

Diky za pomoc hosi.
Stacilo to pres ten TFileStream. Uz jsem ho pouzival, ale nemel jsem ho
fmShareDenyNone.
O tu konzistenci zase az tak nejde, nacitam totiz z asi 50 dbf tabulek
individualni ceny ruznych zakazniku.
Je to vsechno pro offline objednavkovy system, nacita se to jednou
denne, takze jestli tam zrovna nekdo neco pripisuje a
neni to jeste ulozeno, tak to nevadi a nacte se to dalsi den.

David Klodner

-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On
Behalf Of Lauko Stefan
Sent: Saturday, October 09, 2004 5:13 PM
To: delphi-l@clexpert.cz
Subject: Re: Kopirovani otevreneho DBF souboru


Ahoj,
ked to ide TotalCommandrom tak vyskusaj toto:

var
 SourceFile, DestFile:TFileStream;

Odpovedá: Ludek ZITA

10. 10. 2004 20:13

On Behalf Of David Klodner

> .... O tu konzistenci zase az tak
> nejde, nacitam totiz z asi 50 dbf tabulek individualni ceny
> ruznych zakazniku. Je to vsechno pro offline objednavkovy
> system, nacita se to jednou denne, takze jestli tam zrovna
> nekdo neco pripisuje a
> neni to jeste ulozeno, tak to nevadi a nacte se to dalsi den.

Ahoj,
Asi jsi spravne nepochopil co je to konzistence u dbf souboru.
Klidne se ti muze stat, ne ze ti budou chybet nejeka nove dodana data,
ale ze ty data nebudou stejna i u drive ulozenych a nezmenenych vet a
nebo (v lepsim pripade) nepujde takto zkopirovana tabulka otevrit. To ze
se Ti to 1000krat povedlo comandrem zkopirovat to absolutne nevylucuje.
Proste se nemuzes spolehnout na to, ze ten soubor je spravne.
Bude se Ti to velmi velmi blbe hledat.
Proc ten soubor normalne neotevres jako DBF a nevyctes to zaznam po
zaznamu.

Ludek